//package com.yunhe.device.service.base.impl;
//
//import com.yunhe.device.domain.base.BatteryStatus;
//import com.yunhe.common.exception.ArgumentErrorException;
//import com.yunhe.common.exception.ObjectNotFoundException;
//import com.yunhe.common.exception.UniqueConstraintsException;
//import com.yunhe.device.repository.base.BatteryStatusRepository;
//import com.yunhe.device.service.base.BatteryStatusService;
//import com.yunhe.common.util.StringUtil;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.util.Optional;
//
///**
// * 电池状态Service
// * @desc 电池状态服务类实现
// * @author liuronglei
// */
//@Service
//public class BatteryStatusServiceImpl implements BatteryStatusService {
//    @Autowired
//    BatteryStatusRepository batteryStatusRepository;
//
//    @Override
//    @Transactional
//    public BatteryStatus createBatteryStatus(BatteryStatus batteryStatus)
//            throws ArgumentErrorException, UniqueConstraintsException {
//        //判断电池状态代码、电池状态名称是否为空
//        if (StringUtil.isEmpty(batteryStatus.getName())
//                || StringUtil.isEmpty(batteryStatus.getTitle())) {
//            throw new ArgumentErrorException("电池状态代码、电池状态名称不能为空");
//        }
//        //判断电池状态代码是否已存在
//        BatteryStatus batteryStatusByName = this.findByName(batteryStatus.getName());
//        if (batteryStatusByName != null) {
//            throw new UniqueConstraintsException("该电池状态代码已存在");
//        }
//        //新增电池状态
//        BatteryStatus newBatteryStatus = batteryStatusRepository.save(batteryStatus);
//        return newBatteryStatus;
//    }
//
//    @Override
//    @Transactional
//    public void deleteBatteryStatus(Long batteryStatusId) {
//        batteryStatusRepository.deleteById(batteryStatusId);
//    }
//
//    @Override
//    @Transactional
//    public BatteryStatus updateBatteryStatus(BatteryStatus batteryStatus)
//            throws ArgumentErrorException, UniqueConstraintsException, ObjectNotFoundException {
//        if (StringUtil.isEmpty(batteryStatus.getName())
//                || StringUtil.isEmpty(batteryStatus.getTitle())) {
//            throw new ArgumentErrorException("电池状态代码、电池状态名称不能为空");
//        }
//        BatteryStatus batteryStatusById = this.findByBatteryStatusId(batteryStatus.getId());
//        if (batteryStatusById == null) {
//            throw new ObjectNotFoundException("找不到要修改的电池状态");
//        }
//        BatteryStatus batteryStatusByName = this.findByName(batteryStatus.getName());
//        if (batteryStatusByName != null && batteryStatusByName.getId().longValue() != batteryStatus.getId().longValue()) {
//            throw new UniqueConstraintsException("该电池状态代码已存在");
//        }
//        BatteryStatus newBatteryStatus = batteryStatusRepository.save(batteryStatus);
//        return newBatteryStatus;
//    }
//
//    @Override
//    @Transactional
//    public BatteryStatus updateBatteryStatus(Long batteryStatusId,
//                                             String name,
//                                             String title,
//                                             Boolean activity)
//            throws ArgumentErrorException, ObjectNotFoundException, UniqueConstraintsException {
//        BatteryStatus batteryStatus = this.findByBatteryStatusId(batteryStatusId);
//        if (batteryStatus == null) {
//            throw new ObjectNotFoundException("找不到要修改的电池状态");
//        }
//        if (!StringUtil.isEmpty(name)) {
//            if (StringUtil.isEmpty(name)) {
//                throw new ArgumentErrorException("电池状态代码不能为空");
//            }
//            BatteryStatus batteryStatusByName = this.findByName(name);
//            if (batteryStatusByName != null && batteryStatusByName.getId().longValue() != batteryStatus.getId().longValue()) {
//                throw new UniqueConstraintsException("该电池状态代码已存在");
//            }
//            batteryStatus.setName(name);
//        }
//        if (!StringUtil.isEmpty(title)) {
//            if (StringUtil.isEmpty(title)) {
//                throw new ArgumentErrorException("电池状态名称不能为空");
//            }
//            batteryStatus.setTitle(title);
//        }
//        Optional.ofNullable(activity).ifPresent(batteryStatus::setActivity);
//        BatteryStatus newBatteryStatus = batteryStatusRepository.save(batteryStatus);
//        return newBatteryStatus;
//    }
//
//    @Override
//    public BatteryStatus findByBatteryStatusId(Long id) {
//        return batteryStatusRepository.findById(id).orElse(null);
//    }
//
//    @Override
//    public BatteryStatus findByName(String name) {
//        return batteryStatusRepository.findByName(name);
//    }
//
//    @Override
//    public Iterable<BatteryStatus> findBatteryStatuss() {
//        Iterable<BatteryStatus> results = batteryStatusRepository.findAll();
//        return results;
//    }
//
//}
